import java.util.*;

/**
 * 正则表达式匹配
 */
public class Solution1 {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 待匹配字符串
     * @param p string字符串 模式
     * @return bool布尔型
     */
    public boolean isMatch (String s, String p) {
        // write code here
        if (".*".equals(p)) return true;
        Queue<Character> q1 = new ArrayDeque<>();
        Queue<Character> q2 = new ArrayDeque<>();
        for (int i = 0; i < s.length(); i++) {
            q1.offer(s.charAt(i));
        }
        for (int i = 0; i < p.length(); i++) {
            q2.offer(p.charAt(i));
        }
        boolean ret = false;
        char prev = '1';
        while (!q2.isEmpty() && !q1.isEmpty()) {
            char c1 = q1.poll();
            char c2 = q2.poll();
            if (prev == '.' && c2 == '*') return true;
            prev = c2;
        }
        return q1.isEmpty();
    }

    public static void main(String[] args) {
        Solution1 solution = new Solution1();
        System.out.println(solution.isMatch("aa", "a*"));
    }
}